package com.xjrsoft.module.base.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.xjrsoft.core.tool.utils.CollectionUtil;
import com.xjrsoft.module.base.utils.ModuleUtils;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class ModuleSubmitDto {

    @JsonProperty("module")
    private ModuleDto moduleDto;

    @JsonProperty("buttonModule")
    private List<ModuleButtonDto> moduleButtonDtoList;

    @JsonProperty("columnModule")
    private List<ModuleColumnDto> moduleColumnDtoList;

    @JsonProperty("formModule")
    private List<ModuleFormDto> moduleFormDtoList;

    public List<ModuleButtonDto> getModuleButtonDtoList() {
        List<ModuleButtonDto> resultList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(this.moduleButtonDtoList)) {
            for (ModuleButtonDto moduleButtonDto : this.moduleButtonDtoList) {
                resultList.addAll(ModuleUtils.buildFullChildrenList(moduleButtonDto));
            }
        }
        return resultList;
    }

    public List<ModuleColumnDto> getModuleColumnDtoList() {
        List<ModuleColumnDto> resultList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(this.moduleColumnDtoList)) {
            for (ModuleColumnDto moduleColumnDto : this.moduleColumnDtoList) {
                resultList.addAll(ModuleUtils.buildFullChildrenList(moduleColumnDto));
            }
        }
        return resultList;
    }

    public List<ModuleFormDto> getModuleFormDtoList() {
        List<ModuleFormDto> resultList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(this.moduleFormDtoList)) {
            for (ModuleFormDto moduleFormDto : this.moduleFormDtoList) {
                resultList.addAll(ModuleUtils.buildFullChildrenList(moduleFormDto));
            }
        }
        return resultList;
    }
}
